#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <conio.h>

int Index = 0; //窗口索引，判断当前应该打开哪个窗口

void gotoxy( int x, int y){
    COORD coord;
    coord.X = x;
    coord.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

int ReadMaxScore(){
	return 666;
}

void clrscr() {
    system("cls");
}

void CreateInstructionWindow(){
        //屏幕初始化
        //清屏
		clrscr();
		//获取屏幕缓冲区信息
		HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    	CONSOLE_SCREEN_BUFFER_INFO csbi;
   		GetConsoleScreenBufferInfo(hConsole, &csbi);
   		//获取控制台宽度、高度
  	  	int consoleWidth = csbi.srWindow.Right - csbi.srWindow.Left + 1;
  	  	int consoleHeight = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;
   		//绘制边框，大小为控制台长、宽的4/5，偏移量为1/10
		int padding_width = consoleWidth/10;
		int padding_height = consoleHeight/10;
		//绘制窗口边界
		int i;
		//up
		gotoxy(padding_width,padding_height);
		for (i=padding_width;i<consoleWidth-padding_width;i++){
			putchar('*');
		}
		//down 
		gotoxy(padding_width,consoleHeight-padding_height);
		for (i=padding_width;i<consoleWidth-padding_width;i++){
			putchar('*');
		}
		//left
		for (i=padding_height;i<consoleHeight-padding_height;i++){
			gotoxy(padding_width,i);
			putchar('*');
		}
		//right
		for (i=padding_height;i<consoleHeight-padding_height;i++){
			gotoxy(consoleWidth-padding_width,i);
			putchar('*');
		}
        //绘制左上角信息
        gotoxy(0,0);
        printf ("按下Esc返回主菜单\n按下F5刷新窗口");
        //绘制标题“游戏说明”
        int padding_title_x = consoleWidth/2-4;
        int padding_title_y = consoleHeight/5;
        gotoxy(padding_title_x,padding_title_y);
        printf ("游 戏 说 明");
        //绘制说明内容
        //玩法
        gotoxy(consoleWidth/2-2,padding_title_y+2);
        printf ("玩法说明");
        gotoxy(consoleWidth/2-15,padding_title_y+3);
        printf ("1.使用WASD键控制蛇的移动方向");
        gotoxy(consoleWidth/2-15,padding_title_y+4);
        printf ("2.吃到食物后，蛇的长度会增加");
        gotoxy(consoleWidth/2-15,padding_title_y+5);
        printf ("3.蛇碰到墙壁或自身时，游戏结束");
        gotoxy(consoleWidth/2-15,padding_title_y+6);
        printf ("4.游戏中按Esc暂停，再按Esc返回菜单");
        gotoxy(consoleWidth/2-2,padding_title_y+7);
        printf ("特殊玩法");
        gotoxy(consoleWidth/2-15,padding_title_y+8);
        printf ("按F1加速，按F2减速，加速时得分增加，减速时得分减少");
        //历史最高分
        gotoxy(consoleWidth/2-3,padding_title_y+10);
        printf ("历史最高分");
        gotoxy(consoleWidth/2,padding_title_y+11);
        printf ("%d",ReadMaxScore());
        //特别鸣谢
        gotoxy(consoleWidth/2-2,padding_title_y+13);
        printf ("特别鸣谢");
        gotoxy(consoleWidth/2-15,padding_title_y+14);
        printf ("感谢参与制作的成员：温凯鑫，黄奕铭");
        //接收键盘操作
        int tmp;
        while ( 1 ){
            tmp = getch();
            //特殊键Esc，返回主菜单
            if ( tmp == 0x1b ){
                Index = 0;
                break;
            }
            //特殊键F5,刷新窗口比例
            if ( tmp == 0x0 ){
			tmp=getch();
			if ( tmp == 0x3f ){
				clrscr();
				CreateInstructionWindow();
				break;
			}
		}
        }
        return;
}

int main(){
    CreateInstructionWindow();
    return 0;
}